public class Main 
{
    public static void main(String[] args)
    {
        Base bb = new Base();
        Base bd1 = new Derive1();
        Base bd2 = new Derive2();
	// Derive1 d11 = new Base(); // ERROR
	Derive1 d11 = new Derive1();
        Derive1 d12 = new Derive2();
        Derive2 d22 = new Derive2();
        System.out.println("  A");
	bb.f1();
	bb.f2();
        System.out.println("  B");
	bd1.f1();
	bd1.f2();
	// bd1.f3(); // ERROR
        System.out.println("  C");
	bd2.f1();
	bd2.f2();
	// bd2.f3(); // ERROR
	// bd2.f4(); // ERROR
        System.out.println("  D");
	d11.f1();
	d11.f2();
	d11.f3();
        System.out.println("  E");
	d12.f1();
	d12.f2();
	d12.f3();
        System.out.println("  F");
	d22.f1();
	d22.f2();
	d22.f3();
	d22.f4();
    }

}
